Skip to main content

红外遥控器

=

该项目允许任何人使用LIRC(LINUX红外遥控器)将树莓派变成通用遥控器。

这个项目中使用的东西

硬件

Raspberry Pi 3B 1个

红外接收器(通用) 1个

红外发射器(通用) 1个

NPN三极管 1个

软件应用程序和在线服务

LIRC

开始

最近,我一直在从事一个项目,该项目将允许任何人将树莓派变成通用遥控器。为此,我一直在使用LIRC (LINUX红外遥控器),LIRC是一个软件包,可让您解码红外信号并将其发送到许多(但不是全部)常用遥控器。该项目为在Raspberry Pi 上试验IR LED和LIRC封装以及使用新功能扩展基本设置提供了一个起点,例如添加IR接收器以使用现有的遥控器生成LIRC远程配置文件。

步骤1:材料

  • 树莓派2

  • 940nm红外LED 40度-40度视角。明亮并调谐到940nm波长。

  • 38khz红外接收器-以遥控频率接收红外信号

  • PN2222晶体管-用于驱动IR LED

  • 10k 电阻器-用于RPI GPIO和PN2222晶体管之间的电阻

步骤2:电路

尽管您可以将IR LED直接连接到Raspberry Pi上的GPIO引脚,但是LED的输出信号将太弱,并且IR发送器的范围将非常有限。一个简单的晶体管电路通过放大从引脚输出的电流来解决该问题,从而提高了IR LED的信号强度。首先将IR LED放在面包板上,并将长脚(阳极)连接到3.3伏(引脚1),并将长脚(阴极)连接到晶体管的发射极。接下来,将一根接地线(引脚6)连接到晶体管的集电极,然后使用10K电阻将晶体管的基极连接到引脚22。

首先将您的IR LED放在面包板上,并将长脚(阳极)连接到3.3伏(引脚1),并将长脚(阴极)连接到晶体管的发射极。接下来,将一根接地线(引脚6)连接到晶体管的集电极,然后使用10K电阻器将晶体管的基极连接到引脚22。接下来,将IR接收器放在面包板上。在其右脚上运行3.3伏,并将其中脚接地。最后,将针脚23连接到IR接收器的左脚。

步骤3:LIRC安装和设置

首先,我们需要安装和配置LIRC以在RaspberryPi上运行:

sudo apt-get install lirc

输入以下命令添加到/etc/modules文件中:

sudo cat >> /etc/modules \<\<EOF lirc\_dev lirc\_rpi gpio\_in\_pin=23 gpio\_out\_pin=22 EOF

通过输入以下命令来更改/etc/lirc/hardware.conf文件:

sudo cat > /etc/lirc/hardware.conf <<EOF 
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
\# /etc/lirc/hardware.conf
\#
\# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"
\# Don't start lircmd even if there seems to be a good config file
\# START\_LIRCMD=false
\# Don't start irexec, even if a good config file seems to exist.
\# START\_IREXEC=false
\# Try to load appropriate kernel modules
LOAD_MODULES=true
\# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
\# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc\_rpi"
\# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
EOF

通过输入以下命令来编辑您/boot/config.txt的:

cat >> /boot/config.txt \<\<EOF dtoverlay=lirc-rpi,gpio\_in\_pin=23,gpio\_out\_pin=22 EOF 

现在重新启动,lircd 以便它进行以下更改:

sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start

步骤4:测试红外线接收器

测试IR接收器相对简单。运行以下两个命令以停止lircd 并开始从IR接收器输出原始数据:

sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0

将遥控器对准IR接收器,然后按一些按钮。您应该会看到以下内容:

space 16300
pulse 95
space 28794
pulse 80
space 19395
pulse 83
space 402351
pulse 135
space 7085
pulse 85
space 2903

如果不这样做,则可能是某些配置错误。仔细检查您是否已正确连接所有设备,并且未交叉任何电线。我强烈建议参考我上面链接的示意图。我在上面链接到的RaspberryPi论坛线程中也存在一些麻烦的建议咨询。最后-您可能想在黑暗的房间里这样做。我发现我的台灯和头灯会使IR接收器认为它正在接收有效信号。

步骤5:测试IR LED

您将需要找到用于遥控器的现有LIRC配置文件,或者使用IR接收器生成新的LIRC配置文件(在此处查找现有的远程配置文件)。就我而言,我创建了一个新的LIRC配置文件。为此,请阅读LIRC随附的irrecord 应用程序上的文档。

当使用irrecord时,它会要求您在编程按钮时给它们命名。在开始之前,请确保先运行irrecord --list-namespace以查看有效名称。

这是我运行以生成远程配置文件的命令:

\# Stop lirc to free up /dev/lirc0
sudo /etc/init.d/lirc stop
\# Create a new remote control configuration file (using /dev/lirc0) and save the output to ~/lircd.conf
irrecord -d /dev/lirc0 ~/lircd.conf
\# Make a backup of the original lircd.conf file
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd\_original.conf
\# Copy over your new configuration file
sudo cp ~/lircd.conf /etc/lirc/lircd.conf
\# Start up lirc again
sudo /etc/init.d/lirc start

完成远程配置文件并将其保存/添加到远程文件后,/etc/lirc/lircd.conf 可以尝试测试IR LED。我们将使用LIRC附带的irsend 应用程序来方便发送命令。您一定要查看文档以了解有关选项的更多信息irsend

这是我运行以测试我的IR LED的命令(使用我创建的“ Roku”远程配置文件):

\# List all of the commands that LIRC knows for 'Roku'
irsend LIST Roku ""
\# Send the KEY\_POWER command once
irsend SEND\_ONCE Roku KEY\_POWER
\# Send the KEY\_VOLUMEDOWN command once
irsend SEND\_ONCE Roku KEY\_VOLUMEDOWN

我通过将红外灯对准我的Roku接收器并测试是否可以打开它并按Enter来测试它是否有效。

步骤6:结束

翻译自:https://www.hackster.io/austin-stanton/creating-a-raspberry-pi-universal-remote-with-lirc-2fd581